[INFO] cloning repository https://github.com/gsingh93/game-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gsingh93/game-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgsingh93%2Fgame-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgsingh93%2Fgame-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eb311e6ddef6e3afa26c9987092f1268e7244d02
[INFO] checking gsingh93/game-engine against master#af3c6e733a40e671550e0f0f5aeecaa13772ba56 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgsingh93%2Fgame-engine" "/workspace/builds/worker-1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/gsingh93/game-engine on toolchain af3c6e733a40e671550e0f0f5aeecaa13772ba56
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/gsingh93/game-engine
[INFO] finished tweaking git repo https://github.com/gsingh93/game-engine
[INFO] tweaked toml for git repo https://github.com/gsingh93/game-engine written to /workspace/builds/worker-1/source/Cargo.toml
[INFO] crate git repo https://github.com/gsingh93/game-engine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr] error: the lock file /workspace/builds/worker-1/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 464fe541749789b10a3b0ccde83d05da7a45d434e1136350a393cb28dbca0685
[INFO] running `Command { std: "docker" "start" "-a" "464fe541749789b10a3b0ccde83d05da7a45d434e1136350a393cb28dbca0685", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "464fe541749789b10a3b0ccde83d05da7a45d434e1136350a393cb28dbca0685", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "464fe541749789b10a3b0ccde83d05da7a45d434e1136350a393cb28dbca0685", kill_on_drop: false }`
[INFO] [stdout] 464fe541749789b10a3b0ccde83d05da7a45d434e1136350a393cb28dbca0685
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3c5de77edb8c589efaef231cd0e824393a923d6f3279625e259b570cc72b300f
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "3c5de77edb8c589efaef231cd0e824393a923d6f3279625e259b570cc72b300f", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling syn v1.0.40
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling typenum v1.12.0
[INFO] [stderr]    Compiling cgmath v0.16.1
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking rustc-demangle v0.1.16
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking mint v0.5.5
[INFO] [stderr]     Checking takeable-option v0.5.0
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking bytemuck v1.4.1
[INFO] [stderr]     Checking obj v0.10.1
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.5
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling rayon v1.4.0
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling num-rational v0.3.0
[INFO] [stderr]    Compiling cmake v0.1.44
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling paste-impl v0.1.18
[INFO] [stderr]     Checking gif v0.10.3
[INFO] [stderr]     Checking matrixmultiply v0.2.3
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]     Checking libloading v0.6.3
[INFO] [stderr]     Checking crc32fast v1.2.0
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.35
[INFO] [stderr]     Checking getrandom v0.1.15
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking nix v0.14.1
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling standback v0.2.10
[INFO] [stderr]    Compiling time v0.2.19
[INFO] [stderr]     Checking x11-dl v2.18.5
[INFO] [stderr]     Checking aho-corasick v0.7.13
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking backtrace v0.3.50
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]    Compiling freetype-sys v0.13.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling wayland-scanner v0.23.6
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]     Checking wayland-sys v0.23.6
[INFO] [stderr]     Checking crossbeam-channel v0.4.4
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking tiff v0.5.0
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking paste v0.1.18
[INFO] [stderr]     Checking regex v1.3.9
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking ordered-float v1.1.0
[INFO] [stderr]     Checking line_drawing v0.7.0
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking png v0.16.7
[INFO] [stderr]     Checking rayon-core v1.8.0
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]     Checking generic-array v0.13.2
[INFO] [stderr]     Checking freetype-rs v0.26.0
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling glium v0.27.0
[INFO] [stderr]     Checking rusttype v0.7.9
[INFO] [stderr]     Checking simba v0.2.0
[INFO] [stderr]     Checking andrew v0.2.1
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking rand_distr v0.2.2
[INFO] [stderr]     Checking nalgebra v0.22.0
[INFO] [stderr]    Compiling wayland-client v0.23.6
[INFO] [stderr]    Compiling wayland-protocols v0.23.6
[INFO] [stderr]     Checking calloop v0.4.4
[INFO] [stderr]     Checking wayland-commons v0.23.6
[INFO] [stderr]     Checking genmesh v0.6.2
[INFO] [stderr]     Checking jpeg-decoder v0.1.20
[INFO] [stderr]     Checking image v0.23.9
[INFO] [stderr]    Compiling time-macros-impl v0.1.1
[INFO] [stderr]     Checking time-macros v0.1.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.6.6
[INFO] [stderr]     Checking winit v0.22.2
[INFO] [stderr]     Checking glutin v0.24.1
[INFO] [stderr]     Checking opengl v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved imports `nalgebra::dot`, `nalgebra::BaseFloat`, `nalgebra::Col`, `nalgebra::Mat4`, `nalgebra::Vec3`, `nalgebra::Vec4`
[INFO] [stdout]  --> src/camera.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nalgebra::{self, dot, BaseFloat, Col, Mat4, Vec3, Vec4};
[INFO] [stdout]   |                      ^^^  ^^^^^^^^^  ^^^  ^^^^  ^^^^  ^^^^ no `Vec4` in the root
[INFO] [stdout]   |                      |    |          |    |     |
[INFO] [stdout]   |                      |    |          |    |     no `Vec3` in the root
[INFO] [stdout]   |                      |    |          |    no `Mat4` in the root
[INFO] [stdout]   |                      |    |          no `Col` in the root
[INFO] [stdout]   |                      |    no `BaseFloat` in the root
[INFO] [stdout]   |                      no `dot` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `nalgebra::Col`, `nalgebra::Mat4`, `nalgebra::Vec3`, `nalgebra::Vec4`
[INFO] [stdout]   --> src/draw.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 | use nalgebra::{self, Col, Mat4, Vec3, Vec4};
[INFO] [stdout]    |                      ^^^  ^^^^  ^^^^  ^^^^ no `Vec4` in the root
[INFO] [stdout]    |                      |    |     |
[INFO] [stdout]    |                      |    |     no `Vec3` in the root
[INFO] [stdout]    |                      |    no `Mat4` in the root
[INFO] [stdout]    |                      no `Col` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `glium::DisplayBuild`
[INFO] [stdout]   --> src/main.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | use glium::{glutin, Display, DisplayBuild, DrawError, Program, Surface};
[INFO] [stdout]    |                              ^^^^^^^^^^^^ no `DisplayBuild` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `glium::glutin::ElementState`, `glium::glutin::VirtualKeyCode`
[INFO] [stdout]   --> src/main.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 | use glium::glutin::{ElementState, VirtualKeyCode};
[INFO] [stdout]    |                     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `VirtualKeyCode` in `glutin`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     no `ElementState` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `nalgebra::BaseFloat`, `nalgebra::Vec3`
[INFO] [stdout]   --> src/main.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 | use nalgebra::{zero, BaseFloat, Vec3};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^ no `Vec3` in the root
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      no `BaseFloat` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `nalgebra::dot`, `nalgebra::BaseFloat`, `nalgebra::Col`, `nalgebra::Mat4`, `nalgebra::Vec3`, `nalgebra::Vec4`
[INFO] [stdout]  --> src/camera.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nalgebra::{self, dot, BaseFloat, Col, Mat4, Vec3, Vec4};
[INFO] [stdout]   |                      ^^^  ^^^^^^^^^  ^^^  ^^^^  ^^^^  ^^^^ no `Vec4` in the root
[INFO] [stdout]   |                      |    |          |    |     |
[INFO] [stdout]   |                      |    |          |    |     no `Vec3` in the root
[INFO] [stdout]   |                      |    |          |    no `Mat4` in the root
[INFO] [stdout]   |                      |    |          no `Col` in the root
[INFO] [stdout]   |                      |    no `BaseFloat` in the root
[INFO] [stdout]   |                      no `dot` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `nalgebra::Col`, `nalgebra::Mat4`, `nalgebra::Vec3`, `nalgebra::Vec4`
[INFO] [stdout]   --> src/draw.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 | use nalgebra::{self, Col, Mat4, Vec3, Vec4};
[INFO] [stdout]    |                      ^^^  ^^^^  ^^^^  ^^^^ no `Vec4` in the root
[INFO] [stdout]    |                      |    |     |
[INFO] [stdout]    |                      |    |     no `Vec3` in the root
[INFO] [stdout]    |                      |    no `Mat4` in the root
[INFO] [stdout]    |                      no `Col` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `glium::DisplayBuild`
[INFO] [stdout]   --> src/main.rs:35:30
[INFO] [stdout]    |
[INFO] [stdout] 35 | use glium::{glutin, Display, DisplayBuild, DrawError, Program, Surface};
[INFO] [stdout]    |                              ^^^^^^^^^^^^ no `DisplayBuild` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `glium::glutin::ElementState`, `glium::glutin::VirtualKeyCode`
[INFO] [stdout]   --> src/main.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 | use glium::glutin::{ElementState, VirtualKeyCode};
[INFO] [stdout]    |                     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `VirtualKeyCode` in `glutin`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     no `ElementState` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `nalgebra::BaseFloat`, `nalgebra::Vec3`
[INFO] [stdout]   --> src/main.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 | use nalgebra::{zero, BaseFloat, Vec3};
[INFO] [stdout]    |                      ^^^^^^^^^  ^^^^ no `Vec3` in the root
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      no `BaseFloat` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:257:25
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 glutin::Event::KeyboardInput(ElementState::Pressed, _, Some(key)) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:267:25
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 glutin::Event::MouseWheel(glutin::MouseScrollDelta::LineDelta(_, v)) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseScrollDelta` in `glutin`
[INFO] [stdout]    --> src/main.rs:267:51
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 glutin::Event::MouseWheel(glutin::MouseScrollDelta::LineDelta(_, v)) => {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^ could not find `MouseScrollDelta` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:273:25
[INFO] [stdout]     |
[INFO] [stdout] 273 |                 glutin::Event::MouseMoved((x, y)) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:304:25
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 glutin::Event::MouseInput(state, button) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseButton` in `glutin`
[INFO] [stdout]    --> src/main.rs:310:33
[INFO] [stdout]     |
[INFO] [stdout] 310 |                         glutin::MouseButton::Left =>
[INFO] [stdout]     |                                 ^^^^^^^^^^^ could not find `MouseButton` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseButton` in `glutin`
[INFO] [stdout]    --> src/main.rs:312:33
[INFO] [stdout]     |
[INFO] [stdout] 312 |                         glutin::MouseButton::Right =>
[INFO] [stdout]     |                                 ^^^^^^^^^^^ could not find `MouseButton` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:317:25
[INFO] [stdout]     |
[INFO] [stdout] 317 |                 glutin::Event::Resized(x, y) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:320:25
[INFO] [stdout]     |
[INFO] [stdout] 320 |                 glutin::Event::Closed => return,
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]   --> src/camera.rs:29:46
[INFO] [stdout]    |
[INFO] [stdout] 29 |             view_matrix: Cell::new(nalgebra::new_identity(4)),
[INFO] [stdout]    |                                              ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]   --> src/camera.rs:30:46
[INFO] [stdout]    |
[INFO] [stdout] 30 |             proj_matrix: Cell::new(nalgebra::new_identity(4)),
[INFO] [stdout]    |                                              ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `transpose` in crate `nalgebra`
[INFO] [stdout]   --> src/camera.rs:62:23
[INFO] [stdout]    |
[INFO] [stdout] 62 |         t = nalgebra::transpose(&t);
[INFO] [stdout]    |                       ^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]    --> src/draw.rs:112:67
[INFO] [stdout]     |
[INFO] [stdout] 112 |             transform: self.transform.unwrap_or_else(|| nalgebra::new_identity(4)),
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_time` in crate `time`
[INFO] [stdout]    --> src/draw.rs:215:56
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut rot_mat = Self::get_rotation_mat(time::get_time());
[INFO] [stdout]     |                                                        ^^^^^^^^ not found in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]    --> src/draw.rs:247:50
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut transform: Mat4<f32> = nalgebra::new_identity(4);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Timespec` in crate `time`
[INFO] [stdout]    --> src/draw.rs:262:38
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn get_rotation_mat(t: time::Timespec) -> Mat4<f32> {
[INFO] [stdout]     |                                      ^^^^^^^^ not found in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PNG` in crate `image`
[INFO] [stdout]    --> src/main.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let image = image::load(f, image::PNG).unwrap();
[INFO] [stdout]     |                                               ^^^ not found in `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `RENDER` in module `ft::face`
[INFO] [stdout]    --> src/main.rs:137:50
[INFO] [stdout]     |
[INFO] [stdout] 137 |             face.load_char(c as usize, ft::face::RENDER).unwrap();
[INFO] [stdout]     |                                                  ^^^^^^ not found in `ft::face`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowBuilder` in `glutin`
[INFO] [stdout]    --> src/main.rs:223:27
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let display = glutin::WindowBuilder::new()
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ not found in `glutin`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 19  | use glutin::window::WindowBuilder;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:257:25
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 glutin::Event::KeyboardInput(ElementState::Pressed, _, Some(key)) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:267:25
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 glutin::Event::MouseWheel(glutin::MouseScrollDelta::LineDelta(_, v)) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseScrollDelta` in `glutin`
[INFO] [stdout]    --> src/main.rs:267:51
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 glutin::Event::MouseWheel(glutin::MouseScrollDelta::LineDelta(_, v)) => {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^ could not find `MouseScrollDelta` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:136:40
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn children(&self) -> Option<&[Box<GameObject>]> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:274:20
[INFO] [stdout]     |
[INFO] [stdout] 274 |     chars: Vec<Box<GameObject>>,
[INFO] [stdout]     |                    ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:273:25
[INFO] [stdout]     |
[INFO] [stdout] 273 |                 glutin::Event::MouseMoved((x, y)) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:285:40
[INFO] [stdout]     |
[INFO] [stdout] 285 |     fn children(&self) -> Option<&[Box<GameObject>]> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:315:86
[INFO] [stdout]     |
[INFO] [stdout] 315 |             chars.push(Box::new(Char::new(&ctxt.display, x, y, sx, sy, char)) as Box<GameObject>);
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:304:25
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 glutin::Event::MouseInput(state, button) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:341:86
[INFO] [stdout]     |
[INFO] [stdout] 341 |             chars.push(Box::new(Char::new(&ctxt.display, x, y, sx, sy, char)) as Box<GameObject>);
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseButton` in `glutin`
[INFO] [stdout]    --> src/main.rs:310:33
[INFO] [stdout]     |
[INFO] [stdout] 310 |                         glutin::MouseButton::Left =>
[INFO] [stdout]     |                                 ^^^^^^^^^^^ could not find `MouseButton` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `MouseButton` in `glutin`
[INFO] [stdout]    --> src/main.rs:312:33
[INFO] [stdout]     |
[INFO] [stdout] 312 |                         glutin::MouseButton::Right =>
[INFO] [stdout]     |                                 ^^^^^^^^^^^ could not find `MouseButton` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 |     named_objects: HashMap<String, Box<GameObject + 'a>>,
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GameObject + 'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:317:25
[INFO] [stdout]     |
[INFO] [stdout] 317 |                 glutin::Event::Resized(x, y) => {
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |     unamed_objects: Vec<Box<GameObject + 'a>>,
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GameObject + 'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Event` in `glutin`
[INFO] [stdout]    --> src/main.rs:320:25
[INFO] [stdout]     |
[INFO] [stdout] 320 |                 glutin::Event::Closed => return,
[INFO] [stdout]     |                         ^^^^^ could not find `Event` in `glutin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:68:43
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn draw_objs<I: Iterator<Item=&'a Box<GameObject>>, S: Surface>(&self, target: &mut S,
[INFO] [stdout]    |                                           ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:182:39
[INFO] [stdout]     |
[INFO] [stdout] 182 | ...                   obj: &Box<GameObject>) -> Result<(), DrawError> {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]   --> src/camera.rs:29:46
[INFO] [stdout]    |
[INFO] [stdout] 29 |             view_matrix: Cell::new(nalgebra::new_identity(4)),
[INFO] [stdout]    |                                              ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]   --> src/camera.rs:30:46
[INFO] [stdout]    |
[INFO] [stdout] 30 |             proj_matrix: Cell::new(nalgebra::new_identity(4)),
[INFO] [stdout]    |                                              ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `transpose` in crate `nalgebra`
[INFO] [stdout]   --> src/camera.rs:62:23
[INFO] [stdout]    |
[INFO] [stdout] 62 |         t = nalgebra::transpose(&t);
[INFO] [stdout]    |                       ^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]    --> src/draw.rs:112:67
[INFO] [stdout]     |
[INFO] [stdout] 112 |             transform: self.transform.unwrap_or_else(|| nalgebra::new_identity(4)),
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_time` in crate `time`
[INFO] [stdout]    --> src/draw.rs:215:56
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut rot_mat = Self::get_rotation_mat(time::get_time());
[INFO] [stdout]     |                                                        ^^^^^^^^ not found in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `new_identity` in crate `nalgebra`
[INFO] [stdout]    --> src/draw.rs:247:50
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut transform: Mat4<f32> = nalgebra::new_identity(4);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^ not found in `nalgebra`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Timespec` in crate `time`
[INFO] [stdout]    --> src/draw.rs:262:38
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn get_rotation_mat(t: time::Timespec) -> Mat4<f32> {
[INFO] [stdout]     |                                      ^^^^^^^^ not found in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `PNG` in crate `image`
[INFO] [stdout]    --> src/main.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let image = image::load(f, image::PNG).unwrap();
[INFO] [stdout]     |                                               ^^^ not found in `image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `RENDER` in module `ft::face`
[INFO] [stdout]    --> src/main.rs:137:50
[INFO] [stdout]     |
[INFO] [stdout] 137 |             face.load_char(c as usize, ft::face::RENDER).unwrap();
[INFO] [stdout]     |                                                  ^^^^^^ not found in `ft::face`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `WindowBuilder` in `glutin`
[INFO] [stdout]    --> src/main.rs:223:27
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let display = glutin::WindowBuilder::new()
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ not found in `glutin`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 19  | use glutin::window::WindowBuilder;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:136:40
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn children(&self) -> Option<&[Box<GameObject>]> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:274:20
[INFO] [stdout]     |
[INFO] [stdout] 274 |     chars: Vec<Box<GameObject>>,
[INFO] [stdout]     |                    ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:285:40
[INFO] [stdout]     |
[INFO] [stdout] 285 |     fn children(&self) -> Option<&[Box<GameObject>]> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:315:86
[INFO] [stdout]     |
[INFO] [stdout] 315 |             chars.push(Box::new(Char::new(&ctxt.display, x, y, sx, sy, char)) as Box<GameObject>);
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/draw.rs:341:86
[INFO] [stdout]     |
[INFO] [stdout] 341 |             chars.push(Box::new(Char::new(&ctxt.display, x, y, sx, sy, char)) as Box<GameObject>);
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 |     named_objects: HashMap<String, Box<GameObject + 'a>>,
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GameObject + 'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |     unamed_objects: Vec<Box<GameObject + 'a>>,
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn GameObject + 'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:68:43
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn draw_objs<I: Iterator<Item=&'a Box<GameObject>>, S: Surface>(&self, target: &mut S,
[INFO] [stdout]    |                                           ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:182:39
[INFO] [stdout]     |
[INFO] [stdout] 182 | ...                   obj: &Box<GameObject>) -> Result<(), DrawError> {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: use `dyn`: `dyn GameObject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `time::precise_time_ns`: Use `OffsetDateTime::now() - OffsetDateTime::unix_epoch()` to get a `Duration` since a known epoch.
[INFO] [stdout]    --> src/main.rs:252:29
[INFO] [stdout]     |
[INFO] [stdout] 252 |     let mut previous_time = time::precise_time_ns();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `time::precise_time_ns`: Use `OffsetDateTime::now() - OffsetDateTime::unix_epoch()` to get a `Duration` since a known epoch.
[INFO] [stdout]    --> src/main.rs:325:19
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let now = time::precise_time_ns();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `time::precise_time_ns`: Use `OffsetDateTime::now() - OffsetDateTime::unix_epoch()` to get a `Duration` since a known epoch.
[INFO] [stdout]    --> src/main.rs:339:23
[INFO] [stdout]     |
[INFO] [stdout] 339 |             let now = time::precise_time_ns();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: wrong number of lifetime arguments: expected 0, found 1
[INFO] [stdout]    --> src/draw.rs:275:20
[INFO] [stdout]     |
[INFO] [stdout] 275 |     face: ft::Face<'a>, // TODO: Lifetime?
[INFO] [stdout]     |                    ^^ unexpected lifetime argument
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 25 previous errors; 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `time::precise_time_ns`: Use `OffsetDateTime::now() - OffsetDateTime::unix_epoch()` to get a `Duration` since a known epoch.
[INFO] [stdout]    --> src/main.rs:252:29
[INFO] [stdout]     |
[INFO] [stdout] 252 |     let mut previous_time = time::precise_time_ns();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0412, E0425, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `time::precise_time_ns`: Use `OffsetDateTime::now() - OffsetDateTime::unix_epoch()` to get a `Duration` since a known epoch.
[INFO] [stdout]    --> src/main.rs:325:19
[INFO] [stdout]     |
[INFO] [stdout] 325 |         let now = time::precise_time_ns();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `time::precise_time_ns`: Use `OffsetDateTime::now() - OffsetDateTime::unix_epoch()` to get a `Duration` since a known epoch.
[INFO] [stdout]    --> src/main.rs:339:23
[INFO] [stdout]     |
[INFO] [stdout] 339 |             let now = time::precise_time_ns();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: wrong number of lifetime arguments: expected 0, found 1
[INFO] [stdout]    --> src/draw.rs:275:20
[INFO] [stdout]     |
[INFO] [stdout] 275 |     face: ft::Face<'a>, // TODO: Lifetime?
[INFO] [stdout]     |                    ^^ unexpected lifetime argument
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `opengl`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 25 previous errors; 12 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0412, E0425, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "3c5de77edb8c589efaef231cd0e824393a923d6f3279625e259b570cc72b300f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c5de77edb8c589efaef231cd0e824393a923d6f3279625e259b570cc72b300f", kill_on_drop: false }`
[INFO] [stdout] 3c5de77edb8c589efaef231cd0e824393a923d6f3279625e259b570cc72b300f
